草庐IT

C++ make_shared 不可用

全部标签

c++ - 在这种情况下我应该使用 unique_ptr 还是 shared_ptr?

在我的QT应用程序的主窗口中,我使用std::shared_ptr来保存指向我的网络服务实例的指针,该实例管理与多个客户端的所有连接。现在,我必须将这个指针传递给多个子窗口,以便它们可以与客户端通信。我最好在主窗口和子窗口中使用std::shared_ptr成员变量并在创建子窗口时传递复制它,还是使用std更好::unique_ptr并将原始指针传递给子窗口,因为主窗口无论如何都会比子窗口长寿?非常感谢! 最佳答案 主要的实际区别是当主窗口被销毁而子窗口仍然存在并正在使用网络服务时会发生什么:如果您使用unique_ptr并传递原始

c++ - 缺少 shared_ptr 和 weak_ptr 之间的相等性

虽然我明白为什么shared_ptr和unique_ptr没有operator==,但我想知道为什么没有shared_ptr和weak_ptr。特别是因为您可以通过对shared_ptr的引用创建一个weak_ptr。我假设在99%的时间里您都需要lhs.get()==rhs.get()。我现在会继续将其引入我的代码,除非有人能给我一个很好的理由,为什么不应该做这样的事情。 最佳答案 weak_ptr没有get()方法,因为您需要在访问底层指针之前显式锁定weak_ptr。明确这一点是一个深思熟虑的设计决定。如果转换是隐式的,那么很

具有 shared_ptr 成员的 C++ 复制构造函数

来自cplusplus.com:Rarelyyouwillcomeacrossaclassthatdoesnotcontainrawpointersyetthedefaultcopyconstructorisnotsufficient.Anexampleofthisiswhenyouhaveareference-countedobject.boost::shared_ptrisexample.有人可以详细说明一下吗?如果我们有一个包含boost::shared_ptr的类,当该类被复制构造时,不会得到复制构造-因此shared_ptr构造函数不会执行正确的事情并增加引用计数?例如,以下

c++ - std::enable_shared_from_this:是否允许在析构函数中调用 shared_from_this()?

#include#includestructA:publicstd::enable_shared_from_this{~A(){autothis_ptr=shared_from_this();//std::bad_weak_ptrexceptionhere.std::cout();a.reset();return0;}我在调用shared_from_this()时遇到std::bad_weak_ptr异常。是设计使然吗?是的,这可能很危险,因为在析构函数返回后无法使用此指针,但我看不出为什么在技术上不可能在这里获取指针的原因,因为共享指针对象显然仍然存在并且可以用过的。除了编写我自己的

git clone 时候出现 Please make sure you have the correct access rights and the repository exists

Pleasemakesureyouhavethecorrectaccessrightsandtherepositoryexists请确保您具有正确的访问权限并且存储库存在问题描述:输入gitclone命令时出现Pleasemakesureyouhavethecorrectaccessrightsandtherepositoryexists.错误,出现这个问题的原因是git服务器没有存储本地ssh密钥解决步骤:1.删除.ssh文件夹C:\Users\Administrator\.ssh,如果可能找不到Administrator,删除C:\Users\(本地用户名)\.ssh 中的known_ho

windows - Perl 控制台窗口 - 如何使其不可关闭?

我想知道在控制台中使用Perl时是否有任何方法可以隐藏关闭按钮或至少使其不可点击。我知道在使用GUI时这是可能的,但我需要制作一个基于控制台的应用程序并且不希望用户故意关闭它。 最佳答案 usestrict;useWin32::Console::ANSIqw/SetCloseButton/;$SIG{INT}='IGNORE';#noCtrl-CinterruptSetCloseButton(0);#noclosebutton 关于windows-Perl控制台窗口-如何使其不可关闭?,

c++ - 使用(和导出)boost::shared_ptr<T> 时出现错误 C2562

各位程序员好,我正在创建一个C++DLL库,我在其中使用了boost(1.55)的shared_ptr。然而,当我使用VisualStudio2013编译项目时,出现了一堆错误C2562:Error1errorC2562:'boost::shared_ptr::operator[]':'void'functionreturningavaluef:\developer\cplus\lib\boost_1_55_0\boost\smart_ptr\shared_ptr.hpp6631MEngineError2errorC2562:'boost::shared_ptr::operator[]

解决git@github.com:Permission denied (publickey). Could not read from remote repository. Please make s

在进行项目clone的时候出现报错git@github.com:Permissiondenied(publickey).Couldnotreadfromremoterepository.Pleasemakesureyouhavethecorrectaccessrightsandtherepositoryexists.这个错误通常表示没有正确的权限来访问该Git仓库。为了解决GitHub上的权限问题,需要执行以下步骤:1、生成SSH密钥对打开命令行终端(例如GitBash)并输入以下命令:ssh-keygen-trsa-b4096-C"你的电子邮件地址"2、添加SSH密钥到GitHub帐户将公钥

Eclipse 深色主题内容帮助不可读

我正在使用EclipseCDT4.5.2和安装在Windows7上的EclipseColorTheme。问题是当我使用EclipseColorTheme中的“SublimeText2”主题时内容辅助中的第一项(Ctrl-空格菜单)不可读likethat.有没有什么办法可以在不改变整体主题的情况下专门改变那种颜色? 最佳答案 Devstyle拥有DarkestDark和DeepBlack主题,它们真正改进了darkeclipse主题。默认主题经过定制以确保所有颜色看起来都很棒。您可以从Eclipse市场获取:https://marke

c++ - GetShortPathName 不可预测的结果

GetShortPathName()在XPSP3上无法正常工作http://msdn.microsoft.com/en-us/library/aa364989(VS.85).aspx正在返回路径的输入字符串,例如:C:\Test\LongFolderNameToTestWith\BinarySearch.ini与发送的完全一样?然而:C:\DocumentsandSettings\LocalService\NTUSER.DAT确实为路径创建了简称,所以我知道我正在正确调用API。但是:C:\DocumentsandSettings\LocalService\BinarySearch.i